Visualisation of Features

This notebook shows all histograms of all the data present that we need to use


Real Data

It is a representation of the real data that would come out of the LHCb detector. It will therefore contain the interesting signal decay, as well as various backgrounds.

Total Dataset

Characteristics:


Simulated Data

To help you understand the backgrounds present in the real data, simulation samples of some decays are provided as listed below:

Signal Dataset

$$ B^0 \rightarrow K^{*0} (K^+ \pi^-) \mu^+\mu^-$$

Characteristics:

Decay to J/psi

$$ B^0 \rightarrow K^{*0} J/\psi (\mu^+\mu^-) $$

Characteristics:

J/psi mu K swap

with the muon reconstructed as kaon and the kaon reconstructed as a muon

$$ B^0 \rightarrow K^{*0} J/\psi $$

J_psi mu pi swap

with the muon reconstructed as pion and the pion reconstructed as a muon

k_pi swap

$$ B^0 \rightarrow K^{*0} (K^+ \pi^-) \mu^+\mu^-$$

signal decay but with the kaon reconstructed as a pion and the pion reconstructed as a kaon

Phimumu (alternate decay)

$$B^0_s \rightarrow \phi (KK) \mu^+\mu^-$$

pKmumu with pi to k and k to p

with the proton reconstructed as a kaon and the kaon reconstructed as a pion

$$ B^0_s \rightarrow pK \mu^+\mu^-$$

pkmumu with pion to p

$$ B^0_s \rightarrow pK \mu^+\mu^-$$

with the proton reconstructed as a pion

Psi 2S (Alternate decay)

$$ B^0 \rightarrow K^{*0} \psi(2S) (\mu^+\mu^-) $$

Acceptance Monte Carlo

In addition you are given a sample of simulation called acceptance.pkl. This is generated to be flat in the three anglular variables $\theta_l$, $\theta_k$, $\phi$ and $q^2$.

Characteristics:

This is some attempt at filtering based on the vertex distances and comparing it to the signal.

fig, ax = plt.subplots(1,2)
ax[0].hist(total[total['B0_FD_OWNPV'] < 20]['B0_FD_OWNPV'], 100)
ax[1].hist(sig[sig['B0_FD_OWNPV'] < 20]['B0_FD_OWNPV'],100)
plt.xlabel('Distance from secondary to primary vertex /mm')
plt.tight_layout()

fig, ax = plt.subplots(1,2)
ax[0].hist(total[total['B0_FD_OWNPV'] < 20]['B0_FD_OWNPV'], 100)
ax[1].hist(sig[sig['B0_FD_OWNPV'] < 20]['B0_FD_OWNPV'],100)
plt.xlabel('Distance from secondary to primary vertex /mm')
plt.tight_layout()